草庐IT

c++ - 包装第 3 方 DLL

全部标签

c - fwrite() 性能下降

我的Windows命令行C应用程序使用fwrite()将接收到的数据连续转储到SSD驱动器上的1GB文件中。数据来自PCIe卡,大小约为16KB,这是我在调用fwrite()时使用的数据计数。在这些情况下,每次fwrite()调用通常需要不到100微秒(使用Windows性能计数器测量)但有异常值需要2秒或更多秒才能完成,导致PCIe中的缓冲区溢出卡片。这些零星的性能下降的原因是什么?我能做些什么来防止它们发生吗?更新#1:部分问题似乎是由SSD驱动器引起的。转储到常规机械HDD时,异常值大约为100毫秒(而不是1000毫秒)。更新#2:似乎fwrite()减速发生在写入前1.5GB数

c - 执行从 Windows 服务捕获屏幕截图的程序

我正在编写一个Windows服务,它将管理一些捕获屏幕截图的代理程序。代理程序运行良好,完全没有问题-它只是截取屏幕截图并将其保存到bmp文件中。但是当我尝试从我的服务中执行这个代理程序时-它不起作用,我得到的只是黑色图片(就好像我试图直接从我的服务中捕获屏幕截图一样)我的服务内部代码是:ServiceStatus.dwCurrentState=SERVICE_RUNNING;SetServiceStatus(hStatus,&ServiceStatus);SHELLEXECUTEINFOseInfo;seInfo.cbSize=sizeof(SHELLEXECUTEINFO);seI

c - 如何将 Windows 中的简单程序与 Mingw GCC 链接

我有一个简单的“HelloWorld!”c程序,在我的桌面上名为hello.c:#includeintmain(){printf("Helloworld!\n");return0;}我运行以下命令。我使用以下方法对其进行预处理:cpphello.c>hello.i我编译它:gcc-Shello.i我将其组装为:as-ohello.ohello.s到目前为止一切都很好。但是,我无法链接它。除了其他命令外,我已经尝试过这些:ld-ohello.exehello.old-ohello.exehello.o-lgccld-ohello.exehello.o-nostdlib-lgcc没有任何作

windows - 带有额外模块的 Opencv 3.1.0 抛出 DLL 加载失败错误

Windows1032位Opencv3.1.0Opencv_contribVisualStudio2015Python2.7制作我一直在尝试使用opencv_contribgithub页面中的额外模块安装OpenCV3.1.0。按照许多教程,我使用CMakeGUI和配置(到visualstudio142015)并生成opencv/build文件。然后我在VisualStudio中加载生成的opencv.sln文件并构建BUILD_ALL文件,然后构建INSTALL文件。一个成功的cv2.pyd文件在Python27/Lib/site-packages下为我加载到python中,这与您可

c++ - 我们如何调试在 C++ 应用程序中使用的 matlab 制作的 DLL?

我们有使用mcc编译成DLL的matlab.m文件。这由我们在VisualStudio中调试的C++GUI应用程序使用。当我们到达对我们的matlab函数的调用时,我们所能做的就是跳过它。我们如何在源代码级别调试.m代码?我认为添加一些“打印”语句(在matlab中实际上称为“disp”)并在VS的输出窗口中观察内容滚动会很容易。但我们什么也没看到。甚至不是来自C++源代码中的printf(),也不是直接从命令行而不是在VS中运行我们的应用程序。从Google和S.O.,我们了解到发送到stdout的任何东西都不会出现在任何地方。(这个问题是相关的:VisualStudio2012C+

c++ - 为什么在使用 VS 2008 构建 DLL 时不遵循 "Use MFC in a Static Library"设置?

我的目标是创建一个MFC/C++DLL,它除了基本的Win32DLL之外没有任何依赖项。所以我在项目属性中选择了“UseMFCinaStaticLibrary”设置->General->UseofMFC:但是当我构建这个DLL并使用DependencyWalker检查结果时,我得到了这个:显示对以下MFCDll的依赖关系:MFC90U.DLLMSVCR90.DLLMSVCP90.DLL那么我做错了什么?附言。我正在使用VisualStudio2008 最佳答案 我想我明白了。让我感到困惑的是C++->CodeGeneration->

windows - Sqlite dll Connection 对象仅在 UWP Win 10 Mobile 中抛出异常

我们正在使用适用于UWPWindows10的Sqlite在我们的应用程序上存储本地数据,它似乎在Windows10PC上运行良好,但在WindowsMobile中创建新的SQL连接对象时代码抛出异常。有关更多详细信息,请查看屏幕截图。这是我们往往会遇到异常的调用。conn=newSQLite.Net.SQLiteConnection(newSQLite.Net.Platform.WinRT.SQLitePlatformWinRT(),path);Clickheretodownload恳请您帮助修复。 最佳答案 根据您的代码片段,您正

python - PyThreadState_GET() 从 PyImport_GetModuleDict() 中返回 NULL

我正在使用Python3.6在Windows上工作。我有以下用于测试python解释器的简单嵌入代码:Py_SetProgramName(L"MyApp");Py_SetPath(L"C:\\Users\\rutski\\Documents\\python\\PCBuild\\amd64\\python36.zip;"L"C:\\Users\\rutski\\Documents\\python\\DLLs;"L"C:\\Users\\rutski\\Documents\\python\\lib;"L"C:\\Users\\rutski\\Documents\\python\\PCBui

c++ - Breakpad 异常处理程序未在 WIndows 上的 DLL 中使用?

我正在开发一个加载C++DLL的python应用程序。在这样的DLL中,我们完成了所有繁重的工作,我们想将Google的breakpad崩溃报告系统添加到其中。在Windows上,我们在加载DLL后实例化一个异常处理程序。但是,当发生崩溃并且永远不会写入小型转储时,永远不会调用该异常处理程序。当我们对一个简单的C++控制台应用程序使用相同的设置时,一切正常。显然有些东西阻止异常处理程序仅在它在DLL中实例化时才被通知。我们如何确保在DLL中调用Google的breakpad异常处理程序?下面是我们使用的设置。框架是在我们开始使用DLL之前创建的单例。#includeboolcallba

c - 在 C 中调用函数时出现段错误

所以我正在构建一个虚拟机,并试图让它尽可能跨平台,突然遇到一个奇怪的错误。我的机器有一个let指令,它为机器内存中的一个变量分配内存,并为该变量赋值。简而言之,let函数调用getAddress来获取变量的地址。getAddress检查变量是否已定义,并返回地址。如果变量没有定义,getAddress调用memallocate为变量分配内存,并返回地址。这是函数的定义:staticuint16_tmemallocate(Machine*m,char*symbol){uint16_tallocationAddress=getFirstFree(*m);SymbolTable*newSym